/* 
 * Cashbox is the legal property of its developers, whose names are listed in the copyright file included
 * with this source distribution.
 * 
 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
 * General Public License as published by the Free Software Foundation; either version 2 of the License,
 * or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
 * Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License along with this program; if not,
 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */

#import "CBWindowController.h"

@class CBImportViewController, CBImporter;
@interface CBImportPanelController : CBWindowController {
	IBOutlet NSButton *defaultButton;
	IBOutlet NSButton *otherButton;

	id delegate;
	BOOL releaseWhenComplete;
	CBImportViewController *viewController;	
}

+ (void)runWithDelegate:(id)delegate importer:(CBImporter *)importer;
+ (void)beginSheetWithDelegate:(id)delegate importer:(CBImporter *)importer modalForWindow:(NSWindow *)window;

- (CBImporter *)importer;
- (void)setImporter:(CBImporter *)anImporter;

- (IBAction)clickDefault:(id)sender; // NSAlertDefaultReturn
- (IBAction)clickOther:(id)sender; // NSAlertOtherReturn

@end

@interface NSObject (CBImportPanelControllerDelegate)

// after the user clicks accept.  the window is not closed at this point.
// it stays open to show the progress as the importer imports the data.
// you can close the window manually in this call if you would like.
// usually this callback will be used to start the data importing.
// if it's not implemented by the delegate it will simply make the
// importer start importing.  it's rare that you'll want to implement
// this delegate method.
- (void)importPanelDidAcceptImport:(CBImportPanelController *)controller;

// these are called after the window closes.
- (void)importPanelDidComplete:(CBImportPanelController *)controller;
- (void)importPanelDidCancel:(CBImportPanelController *)controller;

@end